package com.bullardev.xldatacluster.providers;

import java.util.List;

import com.bullardev.xldatacluster.providers.webservice.lists.ListsSoap;

/**
 *
 * @author Mubin
 *
 */
public interface SharePointInterface {
    /**
     * @return List
     */
    List<String> getColumnNames();

    /**
     * @return Number of columns
     */
    //int getNoOfColumns();

    /**
     *
     * @param wsdlURL URL of WSDL
     * @param userName Username to connect to Sharepoint
     * @param password Password to connect to Sharepoint
     * @return ListsSoap
     * @throws Exception On error
     */
    ListsSoap sharePointListsAuth(String wsdlURL, String userName,
            String password) throws Exception;

    /**
     *
     * @param port Authenticated List Port
     * @param listName Name of the List
     * @param viewName Name of the View
     * @param rowLimit No. of rows to be included in the ResultSet
     * @param includeHiddenFields Include hidden fields?
     * @return List
     * @throws Exception On Error
     */
    List<Object[]> retrieveDataFromList(ListsSoap port, String listName,
            String viewName, String rowLimit,
                boolean includeHiddenFields) throws Exception;

    /**
     *
     * @return Returns list of datatypes
     */
    List<String> getDataTypes();
}
